#include "objet.h"
#include "scene.h"
////////////////
//Constructeur//
////////////////
Objet::Objet(): _scene(NULL)
{
  setPosition(0.0,0.0,0.0);
  setRotationX(0.0);
  setRotationY(0.0);
  setRotationZ(0.0);
}
///////////////
//Destructeur//
///////////////
Objet::~Objet()
{
}

////////////
//Position//
////////////
void Objet::setPosition(const float x, const float y, const float z)
{
  _position[0]=x;
  _position[1]=y;
  _position[2]=z;
}

void Objet::getPosition(float &x, float &y, float &z)
{
  x=_position[0];
  y=_position[1];
  z=_position[2];
}

////////////
//Rotation//
////////////
void Objet::setRotationX(const float angle)
{
  _rotation[0]=angle;
}

float Objet::getRotationX()
{
  return _rotation[0];
}

void Objet::setRotationY(const float angle)
{
  _rotation[1]=angle;
}

float Objet::getRotationY()
{
  return _rotation[1];
}

void Objet::setRotationZ(const float angle)
{
  _rotation[2]=angle;
}

float Objet::getRotationZ()
{
  return _rotation[2];
}
////////////
//La scene//
////////////

void Objet::setScene(Scene *s)
{
  _scene=s;
}

Scene* Objet::getScene()
{
  return _scene;
}
////////////////////////
//distance a la camera//
////////////////////////

float Objet::distanceCarreeACamera()
{
  if(_scene)
  {
    float x,y,z;
    _scene->getCameraPosition(x,y,z);
    return ((_position[0]-x)*(_position[0]-x) + (_position[1]-y)*(_position[1]-y) + (_position[2]-z)*(_position[2]-z));
  }
  else
  {
    return -1.0;//quand l'objet n'est dans aucune scene
  }
}
